package com.cn.wanxi.util;

public class ReadMe {
    /**
     * 2022-2-22
     * 数据模型
     * 概念模型   需求文档  给客户看    全中文
     * 物理模型   对应的是Java 类  给开发人员看   Java格式规范  model层
     * 逻辑模型   对应的是数据库  给开发人看   数据库表  每一个表应该对应Java的model层
     * -------------------------
     * 每一个表对应该加几个字段：id，create_time，update_time，enable，remark；
     * 数据库不区分大小写   多个单词用下划线隔开
     *
     */
    /**
     * 2022-2-23
     * 数据库定义语言
     * 怎么创建表
     * 三大范式
     * 五大约束
     * 表的数据类型
     *
     */
    /**
     * 2022-2-24
     * 数据权限，控制语言
     * 数据库的语言分类？
     * ddl
     * dcl
     * dml
     * dql
     * 简单的数据查询和条件查询
     */
    /**
     * 2022-2-25
     * 数据库多表查询
     * select -->from-->where -->group by-->having-->order by -->limit
     * 注意：关键字和书写顺序
     * 简单的CRUD 增删改查
     * ----------------------------
     * 在网站上去找后台管理系统模板的时候，我们应该去找简单的免费的
     * 如果不会前端的技术框架：则不要去找关于集成组件，
     * 因为她需要通过其他容器进行配置加载,比如node.js 比如  npm  cnpm
     * 只能找基于传统js的模板
     * ------------------
     * 因为基于前端框架的模板是前后端分离的
     * 既然是前后端分离，那么别人要访问，必须提供服务器
     * 你们会在第七阶段   springboot的时候再前后端分离
     * ------------------------------
     * 登录：
     * 逻辑关系---流程 1234   流程图
     * 每一个操作都应该有流程，这个流程即是给客户看，也是给开发人员看
     * 流程图一般见于需求文档和开发文档
     * 工作比较严谨 工作量比较大 设计的任务比较繁重  对于以后维护方便
     * 只要你以后站在架构师或者项目管理的岗位，你的工作不是简单的把项目做完
     * 你的工作应该是怎么班团队谋福利 --因为你现在是领头人 你更应该关注团队的成长
     * js 里面的submit点击时会刷新整个页面，所以以后不要用，如果用了则要禁止刷新
     *
     *
     *
     */
    /**
     * 2022-2-28
     * js必须提取到单独的文件
     * 监听时间   写方法
     * js的数据类型
     * js 取得form表单的值
     * js怎么判断数据类型
     * json对象转换为字符串
     * 传统js对用户输入格式的写法
     * form表单正则表达式和layui的自定义验证都是基于js的封装
     * ---------------------------
     * 熟悉js的基本语法
     * 正则表达式的用法
     * ---------------
     * ajax以后可能会被其他替代
     */
    /**
     * 2022-3-1
     * vue  js的框架
     * vue  双向绑定
     * 前端传递给后台的值用ajax
     * 后台取得前端的值用req.getParameter("username");
     * 后台返回给前端的值用resp.getWriter().println(JSONObject.toJSONString(userModel));
     * 后台返回给前端的值必须为对象
     * 验证码不能再前端做，前端做的任何代码都是不安全 暴露
     * 验证码只能再后台做:说思路：第一，第二
     * B端 和c端
     */
    /**
     * 2022-3-2
     * 当点击更改验证码时，如果地址不变/code;那么浏览器有一个保护机制，
     * 直接从浏览器缓存里面去取数据，如果浏览器没有缓存数据才会取后台读取
     * 1.逻辑代码不要放入servlet 页面控制层，应该放入服务逻辑层
     * 2.不要在代码里面嵌套else 或者switch
     * 3.不要修改返回结果里面的固有的方法，如果想要不同的消息，则直接创建一个新方法
     * 4.不要到处去创建对象，因为只要创建对象我们的内存就会开辟一个空间，占用内存
     * 5.单例模式
     * ------------
     * 手写了jdbc，你们要知道步骤
     * -----------------------------
     * 前端的逻辑：根据返回值的数据判断改怎么操作
     * 后端的逻辑：
     * 1.servlet 页面控制层  5步骤
     * 2.service  服务逻辑层
     * 3.dao      数据实现层  封装sql语句，调用jdbc查询  解析结果集
     * 4.JDBC   以后jdbc写完了不用管，以后只需要操作1,2,3个步骤即可
     *
     */
    /**
     * 2022-3-3
     * 页面之间相互传值 sessionStorage
     * 页面加载完成执行里面的代码
     * 日期格式化
     * div赋值
     * ----------------------------
     * 我们所有的数据都是通过后台传递到签到，所以
     * 页面加载完成还应该去执行查询数据，得到后台的数据库数据
     * html()和.val()差别是啥
     * html是对div进行取值
     * val是对表单进行取值
     * html("aa")是对div进行赋值
     * ------------------------------------
     * 查询所有
     * 1.前端：
     *      1）编写页面
     *      2）创建member-list.js文件
     *      3）页面加载完成执行ajax查询数据findAll()
     *      4）对查询的数据赋值到表格里面去setData()
     * 2.后台：
     *      1）servlet 五步骤
     *      2）service 将data放入ResultModel
     *      3）dao  封装sql语句，解析结果姐ResultSet
     * -------------------------------
     * 注意：以后我们的用户表里面可能还会有登录时间，会以登录最近的进行排序
     * 对查询数据赋值
     * 1.setData(res.data);
     * 2.对数组遍历   form循环
     * 3.字符串拼接   html+='a';  ' + data[i].id + '
     * 4.对已启用和已停用的逻辑关系   三元运算符
     * 5.要学会观察代码的变化
     * ----------------------------
     * layer.confirm('确认要停用吗？',function(index){ 提醒是否进行下一步操作
     * $(obj).attr('title')  attr  取得属性的值
     * $(obj).attr('title','afas') 对属性进行赋值
     * $(obj).find('i').html('&#xe62f;');  find指找到当前元素里面的子元素
     * obj当前元素  parents 父元素  addClass添加样式类名 removeClass删除样式类名
     * ------------------------------------
     * 模仿：跟着我的录屏模仿，跟着代码模仿
     *
     *
     */
    /**
     * 2022-3-4
     * 自定义图标
     * 解决乱码:后台传递到前端可能出现乱码？前端传递到后端也可以出现乱码？
     * 接口命名方式：一般情况下以I开头，但是，再service和dao层不要去些I，
     * 因为我们书写习惯默认service，dao就算接口，默认impl就算实现类
     * 分页的逻辑关系
     * -------------------
     * 删除：必要条件必须有id
     * 1.前端：js    逻辑判断
     * 2.后台：servlet  得到id           dao层  封装sql语句
     * -------------------------------------------------
     *
     */
    /**
     * 2022-3-7 动态表单赋值
     * 1.返回的数据格式 code必须为0，必须有count和data
     * 2.性别和状态   表单元素
     * 3.操作栏  删除  删除后需要刷新数据
     * 4.如果再其他地方调用table，则必须要再方法里面重新写layui.use('table', function () {
     * ----------------------------------------------
     * 学会观察  代码的变化
     * ----------------------------
     * 增加：
     * 前端：html页面
     * js：得到所有的值
     * 复选框取值
     * 数组转为字符串
     * $(this).attr("title")
     * 数组的赋值：arr_box.push();
     * 后台：
     *      servlet
     *      service
     *      dao
     * -------------------------
     *
     */
    /**
     * 2022-3-9
     * 分页的时候我们删除完成后不能直接刷新页面，因为会直接到第一页
     * 所以，删除的时候我们需要拿到当前的页数，删除后根据页数直接查询
     * ----------------------------------------------------------
     * 我们怎么拿到第几页？
     * 如果用自带的分页，不好拿取第几页，所以用自定义分页
     * 1.每次点击分页后需要讲第几页和每页显示的条数放在一个全局变量
     * 2.点击删除后需要重新刷新数据，则讲第几页和每页显示的条数传递到查询所有的方法
     *  ---------------------------------------
     *  更新后台数据，应该每次操作都分别创建不同的方法
     *  mysql 语句 对于性别和状态的更新
     *  1.case when
     *  2.if
     *  3.^异或
     *  4.abs绝对值
     *  前端代码：显示  性别和锁定的时候，可能后台数据库的数据类型都需要整型，
     */
    /**
     * 2022-3-11
     * 编辑： 首先拿到id，然后根据id去数据库查询数据，然后将得到的数据进行赋值
     * 前端：
     *      1.写页面
     *      2.写js
     *          1）得到id
     *          2）根据id查询  findById(id)
     *          3)赋值  setData（data）；
     * 后台：
     *      1）servlet   得到前端传递的id
     *      2)service
     *      3)dao
     * ---------------------------------------
     * 将查询所有和根据id查询里面的解析结果集封装到一个方法里面
     * Java和js和mysql的日期格式化
     * 注意：
     * 1.清缓存
     * 2.打断点(servlet，sql语句)
     * 3.前端用console.log(11);
     */
}
